home *** CD-ROM | disk | FTP | other *** search
- ' Program EX_0407.BAS
- ' Listing 8B - see documentation in TUTOR.SSS
-
- const ARRIVL = 1, STARTA = 2, ENDACT = 3, NEXTAC = 4
- const STRTDY = 5
- const CLOSES = 0, WATCH = 1
- const FALSE = 0, TRUE = not FALSE
-
- common shared ecode, opens, repars, n, r, d
- common shared inter, rept
-
- declare sub prime ()
- declare sub clshop ()
- declare sub box ()
- declare sub newday ()
-
- rem $include: 'SSSB.H'
-
- call prime
-
- do
- ecode = NEXTEV
- if ecode > 0 then
- select case ecode
-
- case ARRIVL
- if IDE = WATCH then
- CREATE EX(inter), WATCH
- SCHED 0, NEXTAC, WATCH
- else
- SCHED .5, STRTDY, CLOSES
- clshop
- end if
-
- case NEXTAC
- if opens then
- r = r + 1
- TALLY 2, r
- if repars then
- DISPOS
- else
- SCHED 0, STARTA, IDE
- end if
- else
- box
- end if
-
- case STARTA
- SCHED EX(rept), ENDACT, 0
- r = r - 1
- TALLY 2, r
- repars = TRUE
-
- case ENDACT
- d = d + 1
- TALLY 3, d
- if r > 0 then
- SCHED 0, STARTA, 0
- else
- DISPOS
- repars = FALSE
- end if
-
- case STRTDY
- newday
-
- end select
- end if
- loop while ecode > 0
-
- title$ = " "
- SUMRY sadd(title$)
-
- sub box
- DISPOS
- n = n + 1
- TALLY 1, n
- end sub
-
- sub clshop
- opens = FALSE
- d = 0
- TALLY 3, d
- end sub
-
- sub newday
- CREATE .5, CLOSES
- DISPOS
- opens = TRUE
- repars = FALSE
- r = r + n
- TALLY 2, r
- n = 0
- TALLY 1, n
- end sub
-
- sub prime
- INIQUE 0, 0, 3
- title$ = "Night "
- INISTA 1, sadd(title$), 1, 0, 0, 0
- title$ = "W f repair "
- INISTA 2, sadd(title$), 1, 0, 0, 0
- title$ = "W f delivery "
- INISTA 3, sadd(title$), 1, 0, 0, 0
- CREATE 0, WATCH
- CREATE .5, CLOSES
- SIMEND 10!
- n = 0
- r = 0
- d = 0
- opens = TRUE
- repars = FALSE
- inter = 7 / 25
- rept = 2 / 24
- end sub
-
-